package com.itbaizhan.service;

import com.itbaizhan.domain.TOrder;
import com.baomidou.mybatisplus.extension.service.IService;

/**
* @author 13487
* @description 针对表【t_order】的数据库操作Service
* @createDate 2024-04-25 13:55:09
*/
public interface TOrderService extends IService<TOrder> {

    /**
     * 使用synchronized实现同步锁
     * @param productId
     * @param count
     * @return
     */
    String createOrder(Integer productId, Long count);

    /**
     * 使用实现分布式锁----数据库悲观锁
     * @param productId
     * @param count
     * @return
     */
    String createOrderPessimisticlock(Integer productId, Long count);


    /**
     * 使用实现分布式锁----数据库乐观锁
     * @param productId
     * @param count
     * @return
     */
    String createOrderOptimisticlock(Integer productId, Long count);


    /**
     * 使用实现分布式锁----redis
     * @param productId
     * @param count
     * @return
     */
    String createOrderRedislock(Integer productId, Long count);

    /**
     * 使用实现分布式锁----redisssion解决分布式锁
     * @param productId
     * @param count
     * @return
     */
    String createOrderRedissionlock(Integer productId, Long count) throws InterruptedException;


    /**
     * 使用实现分布式锁----zk
     * @param productId
     * @param count
     * @return
     */
    String createOrderZklock(Integer productId, Long count) throws Exception;

}
